﻿using ConfExpert.Datasets;
using ConfExpert.Forms.Base;
using ConfExpert.Forms.Depo.Kauf;
using ConfExpert.Forms.Planlama;
using ConfExpert.Forms.Rapor.Aksesuar;
using ConfExpert.Utility;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraEditors.Repository;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraReports.UI;
using DevExpress.XtraVerticalGrid.Events;
using DevExpress.XtraVerticalGrid.Rows;
using DevTeam;
using SpreadsheetGear;
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Windows.Forms;

namespace ConfExpert.Forms.Depo.Westbrook
{
    public partial class Orders : XForm
    {
        private RepositoryItemGridLookUpEdit RIGumruk
        {
            get
            {
                DataTable dtGumruk = new DataTable();
                dtGumruk.Columns.Add("Name", typeof(string));
                dtGumruk.Columns.Add("Value", typeof(decimal));
                dtGumruk.Rows.Add("Uzak Doğu", 1.15);
                dtGumruk.Rows.Add("Avrupa", 1.05);
                dtGumruk.Rows.Add("Espresso", 1);

                return GetCustomGLE(dtGumruk, "Name", "Value");
            }
        }
        public Orders()
        {
            InitializeComponent();
        }

        BindingSource bsFabrics, bsDagilim, bsAksesuar;
        DataTable dtCompare = new DataTable();
        private void Orders_Load(object sender, EventArgs e)
        {
            TAM.FabricsTableAdapter = new Datasets.MyDataTableAdapters.FabricsTableAdapter();
            TAM.SiparisDagilimTableAdapter = new Datasets.MyDataTableAdapters.SiparisDagilimTableAdapter();
            TAM.WBOrdersAksesuarTableAdapter = new Datasets.MyDataTableAdapters.WBOrdersAksesuarTableAdapter();

            ds.Fabrics.Columns.Add("Total", typeof(int), "SUM(Child(FK_SiparisDagilim_Fabric_idx).TotalComputed)");
            ds.Fabrics.Columns.Add("FabricOK", typeof(bool), "MAX(Child(FK_CutOrder_Fabrics_idx).FabricOK)");
            ds.Fabrics.Columns.Add("CutOrder", typeof(int), "MAX(Child(FK_CutOrder_Fabrics_idx).CutOrder)");
            ds.Fabrics.Columns.Add("PlanlandiMi", typeof(bool));
            
            CreateVerticalGrid();
            Rfrsh();

            bsFabrics = new BindingSource(ds, "Fabrics");
            bsDagilim = new BindingSource(bsFabrics, "FK_SiparisDagilim_Fabric_idx");
            bsAksesuar = new BindingSource(bsFabrics, "FK_WBOrdersAksesuar_Fabrics_idx");

            string TotalExpression = "";
            for (int i = 1; i < 29; i++)
                TotalExpression += string.Format("ISNULL(A{0}, 0)+", i.ToString().PadLeft(2, '0'));
            TotalExpression = TotalExpression.RemoveIfEndsWith("+");

            ds.Fabrics.Columns.Add("GomlekFiyati_Tek", typeof(decimal), "((KumasFiyat * ModelBM * Gumruk) + CMT + AksesuarFiyati + Nakliye + IsNull(SurCharge, 0)) * Kar");
            ds.SiparisDagilim.Columns.Add("TotalEx", typeof(int), TotalExpression);
            ds.Fabrics.Columns.Add("TotalEx", typeof(int), "SUM(Child(FK_SiparisDagilim_Fabric_idx).TotalEx)");
            ds.Fabrics.Columns.Add("GomlekFiyati", typeof(decimal), "GomlekFiyati_Tek * Total");

            InitGridView(gvFabrics, bsFabrics);
            InitGridView(gvDagilim, bsDagilim);
            InitGridView(gvMyTreeLines, bsAksesuar);

            gvFabrics.EnableNewRow();
            gvDagilim.EnableNewRow();

            gvMyTreeLines.EnableNewRow();
            gvMyTreeLines.EnableRowDelete();

            gvMyTreeLines.MakeColumnInvisible("idx","WBOrdersAksesuarId");
            gvDagilim.MakeColumnInvisible("SiparisDagilimId", "TotalComputed", "idx", "Part", "isOrdered");
            gvFabrics.MakeColumnInvisible("DosyaAdi", "COOrderId", "Style", "CodeTrim5", "CodeTrim6", "Garni5Birim", "Garni6Birim", "GomlekFiyat", "AyrimId","KF");

            gvFabrics.YanYanaGetir("Total:stGenelId", "PlanlandiMi:StyleId", "DugmeBoyu:ButtonHole");
            gvFabrics.YanYanaGetirSoluna("SezonId", "BrandId");
            
            gvFabrics.MakeColumnsReadOnly("ModelBM", "GomlekFiyati", "GomlekFiyati_Tek", "RIDD", "WhoSubmitted", "OrderedDate", "DosyaNo", "KesilenAdet", "YuklenenAdet", "KF", "BrandId", "AksesuarCikisTalebi");

            gvFabrics.FormatAsNumber(0, "YuklenenAdet", "KesilenAdet");
            gvFabrics.FormatAsNumber(1, "PastalGarni1Birim", "PastalGarni2Birim", "PastalGarni3Birim");
            gvFabrics.FormatAsNumber(2, "PastalBirimMetraj", "GomlekFiyati", "GomlekFiyati_Tek");

            gvFabrics.Columns["CutOrder"].Fixed =
            gvFabrics.Columns["FabricOK"].Fixed = DevExpress.XtraGrid.Columns.FixedStyle.Left;

            gvFabrics.SetFilterTypeToCheckedList("StyleId");
            gvFabrics.Columns["CutOrder"].OptionsFilter.ShowBlanksFilterItems = DevExpress.Utils.DefaultBoolean.True;

            gvFabrics.Columns["ProductId1"].ColumnEdit =
            gvFabrics.Columns["ProductId2"].ColumnEdit =
            gvFabrics.Columns["ProductId3"].ColumnEdit =
            gvFabrics.Columns["ProductId4"].ColumnEdit =
            gvFabrics.Columns["ProductId5"].ColumnEdit =
            gvFabrics.Columns["ProductId6"].ColumnEdit = RI(Rp.V_Kumas);

            RepositoryItem ri = RI(Rp.Tela);
            gvFabrics.Columns["Yaka"].ColumnEdit =
            gvFabrics.Columns["Kusak"].ColumnEdit =
            gvFabrics.Columns["Poligot"].ColumnEdit =
            gvFabrics.Columns["MansetVerev"].ColumnEdit =
            gvFabrics.Columns["ApaciYaka"].ColumnEdit =
            gvFabrics.Columns["MostraYaka"].ColumnEdit =
            gvFabrics.Columns["YakaAlt"].ColumnEdit =
            gvFabrics.Columns["KusakAlti"].ColumnEdit =
            gvFabrics.Columns["MansetAlti"].ColumnEdit =
            gvFabrics.Columns["MansetPoligot"].ColumnEdit =
            gvFabrics.Columns["Apartura"].ColumnEdit =
            gvFabrics.Columns["Apolet"].ColumnEdit =
            gvFabrics.Columns["CepKapagi"].ColumnEdit =
            gvFabrics.Columns["KusakUcu"].ColumnEdit =
            gvFabrics.Columns["DubleManset"].ColumnEdit =
            gvFabrics.Columns["Manset"].ColumnEdit =
            gvFabrics.Columns["EkstraTela"].ColumnEdit = ri;

            gvFabrics.Columns["WhoSubmitted"].ColumnEdit = RI(Rp.V_User);
            gvFabrics.Columns["Gumruk"].ColumnEdit = RIGumruk;
            gvFabrics.Columns["Pat"].ColumnEdit = RI(Rp.V_Aksesuar);
            gvFabrics.Columns["StyleId"].ColumnEdit = RI(Rp.Style);

            GridManager gm = gvFabrics.GetManager();

            if (ytk(135))
            {
                gm.GridMenu.AddMenu("Kesim Föyü çıkar", KesimFoyu_Click);
                gm.GridMenu.AddMenu("Varolan Dosyaya Ekle", DosyayaEkle_Click);
                gm.GridMenu.AddMenu("Dosya No İptal Et", CancelKesimNo);

                gm.GridMenu.AddMenu("Kesim Bilgi Formu", KesimBilgi_Click, true);
                gm.GridMenu.AddMenu("Dosya Kapama Raporu ", DosyaKapama_Click);
                gm.GridMenu.AddMenu("Nakış Kartelası", NakisKartelasi_Click);
                gm.GridMenu.AddMenu("Aksesuar Kartelası", AksNumune);
                gm.GridMenu.AddMenu("Yıkama Kartelası", YikamaKartelasi_Click);

                gm.GridMenu.AddMenu("Kumaş İhtiyacı", KumasIhtiyaci, true);
                gm.GridMenu.AddMenu("Aksesuar İhtiyacı", TalepOlustur_Click);
                gm.GridMenu.AddMenu("Aksesuar İhtiyacını Çıkar (Toplu)", AksesuarIhtiyaciToplu);
                gm.GridMenu.AddMenu("Tela İhtiyacı", TelaIhtiyaci);

                gm.GridMenu.AddMenu("Renkle Değişen Aksesuarlar", RenkleDegisen, true);
                gm.GridMenu.AddMenu("Ürün ağacı oluştur", UrunAgaciOlustur);
                gm.GridMenu.AddMenu("Kumaş Enlerini Seç ", KumasEni_Click);
                gm.GridMenu.AddMenu("Kumaş Fiyatı Seç", KumasFiyati);
                gm.GridMenu.AddMenu("Beden Dağılımı Eşleme", BedenEsleme);
                gm.GridMenu.AddMenu("Dağılımları Gör", Dagilimlar_Click);
                gm.GridMenu.AddMenu("EN-TR Çeviri", EN_TR_Click);

                gm.GridMenu.AddMenu("Tüketim", GetStockSituation, true);
                gm.GridMenu.AddMenu("Eksikleri Excelde Göster", EksikleriExceldeGoster, true);
                gm.GridMenu.AddMenu("Bu artikelin beklenen gelişleri", BeklenenGelisler);
                gm.GridMenu.AddMenu("Yıkama Sonuçları", YikamaSonuclari);
            }
            gvFabrics.SetFilterTypeToCheckedList("DosyaNo");
                        
            DagilimChanged();

            btnArtikel.Visibility = btnSave.Visibility = btnKesilen.Visibility = cbenglish.Visibility=cbPreSubmit.Visibility = ytk(135) ? DevExpress.XtraBars.BarItemVisibility.Always : DevExpress.XtraBars.BarItemVisibility.Never;

            emptyEditor = new RepositoryItemButtonEdit();
            emptyEditor.Buttons.Clear();
            emptyEditor.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
            gcMytreeLines.RepositoryItems.Add(emptyEditor);

            gvFabrics.RowCellStyle += gvFabrics_RowCellStyle;
            gvFabrics.CellValueChanged += gvFabrics_CellValueChanged;
            gvFabrics.FocusedRowChanged += gvFabrics_FocusedRowChanged;
            btnArtikel.ItemClick += btnArtikel_ItemClick;
            btnKesilen.ItemClick += btnKesilen_ItemClick;
            btnSave.ItemClick += btnSave_ItemClick;
            gvFabrics.ShowingEditor += gvFabrics_ShowingEditor;
            gm.Pasting += gm_Pasting;
            this.KeyPreview = true;
            this.KeyUp += Orders_KeyUp;
            cbPreSubmit.CheckedChanged += cbPreSubmit_CheckedChanged;

            gvMyTreeLines.GetManager().Pasting += BOM_Pasting;
            gvMyTreeLines.ShowingEditor += gvMyTreeLines_ShowingEditor;
            gvMyTreeLines.CustomRowCellEdit += gvMyTreeLines_CustomRowCellEdit;

            this.dtCompare = ds.Fabrics.DefaultView.ToTable(false, "idx", "ProductId");

            gvFabrics.BestFitColumns();
            gvDagilim.BestFitColumns();

            gvFabrics.AddSummary("Total");
            gvDagilim.AddSummary("A01", "A02", "A03", "A04", "A05", "A06", "A07", "A08", "A09", "A10",
                            "A11", "A12", "A13", "A14", "A15", "A16", "A17", "A18", "A19", "A20",
                            "A21", "A22", "A23", "A24", "A25", "A26", "A27", "A28");
        }
        
        #region Yıkama testi sonuçları
        private void YikamaSonuclari(object sender, EventArgs e)
        {
            string Idxs = gvFabrics.GetSelectedValues("idx");
            YikamaSonuclar ys = new YikamaSonuclar(Idxs,75);
            ys.ShowDialog();
        }
        #endregion

        RepositoryItemButtonEdit emptyEditor;
        void gvMyTreeLines_CustomRowCellEdit(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e)
        {
            GridView view = sender as GridView;
            if (e.Column.FieldName == "Seri" &&
                view.GetRowCellDisplayText(e.RowHandle, "AksSeriId") == string.Empty)
                e.RepositoryItem = emptyEditor;

            else if (e.Column.FieldName == "Qty")
            {
                DataTable dtZorunluAdet = ds.Tables["Table5"];
                int ProductCategoryId = view.GetRowCellValue(e.RowHandle, "ProductCategoryId").ToInt();
                bool IsProductCategoryExist = dtZorunluAdet.Select("ProductCategoryId = " + ProductCategoryId).Length > 0;
                if (IsProductCategoryExist)
                {
                    List<string> adet = new List<string>();
                    foreach (DataRow dr in dtZorunluAdet.Select("ProductCategoryId = " + ProductCategoryId))
                        adet.Add(dr["Qty"].ToDecimal().ToString("#,##0.###"));

                    RepositoryItemComboBox riAdet = new RepositoryItemComboBox();
                    riAdet.Items.AddRange(adet);
                    riAdet.TextEditStyle = TextEditStyles.DisableTextEditor;
                    e.RepositoryItem = riAdet;
                }
            }
        }

        void gvMyTreeLines_ShowingEditor(object sender, System.ComponentModel.CancelEventArgs e)
        {
            GridView view = sender as GridView;

            int AksesuarId = view.GetRowCellValue(view.FocusedRowHandle, "AksesuarId").ToInt();
            e.Cancel = view.FocusedColumn.FieldName == "Qty" && AksesuarId == 0;
        }

        void BOM_Pasting(int rowHandle, DevExpress.XtraGrid.Columns.GridColumn column, object val, System.ComponentModel.CancelEventArgs ce)
        {
            if (rowHandle < 0)
                return;
            if (column.FieldName == "Qty" && val.ToStr() != "")
            {
                DataTable dtZorunluAdet = ds.Tables["Table5"];
                int ProductCategoryId = gvMyTreeLines.GetRowCellValue(rowHandle, "ProductCategoryId").ToInt();
                int AksesuarId = gvMyTreeLines.GetRowCellValue(rowHandle, "AksesuarId").ToInt();

                bool IsProductCategoryExist = dtZorunluAdet.Select("ProductCategoryId = " + ProductCategoryId).Length > 0;
                bool IsOptionExist = dtZorunluAdet.Select("ProductCategoryId = " + ProductCategoryId + " and Isnull(Qty,0) = " + val.ToStr().Replace(",", ".")).Length > 0;

                ce.Cancel = (IsProductCategoryExist && !IsOptionExist) || AksesuarId == 0;
            }
        }

        void cbPreSubmit_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Rfrsh();
        }

        void gvFabrics_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            DagilimChanged();
        }

        private void UrunAgaciOlustur(object sender, EventArgs e)
        {
            gvFabrics.EndEditing();
            if (ds.HasChanges())
                btnSave.PerformClick();

            string idxs = gvFabrics.GetSelectedValues("idx");

            DataRow[] drIdxs = ds.Fabrics.Select("idx IN (" + idxs + ")");
            DataTable dtIdxs = drIdxs.CopyToDataTable();

            int StyleId = dtIdxs.Rows[0]["StyleId"].ToInt();
            int BrandId = AppSession.Lookups.Style.FindByStyleId(StyleId)["BrandId"].ToInt();
            int SezonId = dtIdxs.Rows[0]["SezonId"].ToInt();
            int TalepTipiId = dtIdxs.Rows[0]["TalepTipiId"].ToInt();
            string Model = AppSession.Lookups.Style.FindByStyleId(StyleId).Style;

            int StyleCount = Convert.ToInt16(dtIdxs.Compute("Count(StyleId)", "StyleId =" + StyleId));
            if (dtIdxs.Rows.Count > StyleCount)
            {
                XtraMessageBox.Show("Seçtiğiniz satırlarda farklı model bilgileri mevcut!", "Critical");
                return;
            }

            int SeasonCount = Convert.ToInt16(dtIdxs.Compute("Count(SezonId)", "SezonId =" + SezonId));
            if (dtIdxs.Rows.Count > SeasonCount)
            {
                XtraMessageBox.Show("Seçtiğiniz satırlarda farklı sezon bilgileri mevcut!", "Critical");
                return;
            }

            int TalepTipiCount = Convert.ToInt16(dtIdxs.Compute("Count(TalepTipiId)", "TalepTipiId =" + TalepTipiId));
            if (dtIdxs.Rows.Count > TalepTipiCount)
            {
                XtraMessageBox.Show("Seçtiğiniz satırlarda farklı talep tipleri mevcut!", "Critical");
                return;
            }


            bool IsBOMExist = ds.Tables["Table4"].Select("Model='" + Model + "' and BrandId=" + BrandId + " and SezonId =" + SezonId + " and TalepTipiId =" + TalepTipiId).Length > 0;
            if (IsBOMExist)
            {
                DataSet dsBOMLines = ExecuteDataSet("GetWBBOMEksik", idxs);
                int EksikAksesuar = dsBOMLines.Tables[0].Rows[0]["intVal"].ToInt();
                if (EksikAksesuar == 0)
                {
                    XtraMessageBox.Show("Seçtiğiniz modelin ürün ağacı zaten var!", "Critical");
                    return;
                }
                else if (XtraMessageBox.Show("Renge göre aksesuar girilmemiş satırlar var. Tamamlamak ister misiniz", "Critical", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
                {
                    WB_BOMRevize br = new WB_BOMRevize(idxs, dsBOMLines);
                    br.Show();
                    br.FormClosed += br_FormClosed;
                }
            }
            else
            {

                WB_BOMOlustur bo = new WB_BOMOlustur(idxs, Model);
                bo.Show();
                bo.FormClosed += bo_FormClosed;
            }
        }

        void br_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (((WB_BOMRevize)sender).DialogResult == DialogResult.OK)
                Rfrsh();
        }

        void bo_FormClosed(object sender, FormClosedEventArgs e)
        {
            if(((WB_BOMOlustur)sender).DialogResult == DialogResult.OK)
                Rfrsh();
        }
        private void BeklenenGelisler(object sender, EventArgs e)
        {
            if (gvFabrics.GetFocusedRowCellValue("ProductId").ToInt() > 0)
                using (InTransit it = new InTransit(gvFabrics.GetFocusedRowCellValue("ProductId").ToInt()))
                {
                    it.Text = "Beklenen Gelişler";
                    it.ShowDialog();
                }
        }
        private void YikamaKartelasi_Click(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");
            Rapor.xrYikamaKartelasi xr = new Rapor.xrYikamaKartelasi(idxs, "GetYikamaKartelasiWB");
            xr.ShowPreview();
        }

        void gm_Pasting(int rowHandle, DevExpress.XtraGrid.Columns.GridColumn column, object val, System.ComponentModel.CancelEventArgs ce)
        {
            string AksesuarCikisTalebiId = gvFabrics.GetRowCellValue(rowHandle, "AksesuarCikisTalebi").ToStr();
            ce.Cancel = AksesuarCikisTalebiId != "" && (column.FieldName == "OrderRef" || column.FieldName == "BrandId" || column.FieldName == "SezonId");
        }

        void gvFabrics_ShowingEditor(object sender, System.ComponentModel.CancelEventArgs e)
        {
            string AksesuarCikisTalebiId = gvFabrics.GetFocusedRowCellValue("AksesuarCikisTalebi").ToStr();
            e.Cancel = AksesuarCikisTalebiId != "" && (gvFabrics.FocusedColumn.FieldName == "OrderRef" || gvFabrics.FocusedColumn.FieldName == "BrandId" || gvFabrics.FocusedColumn.FieldName == "SezonId");
        }

        void Orders_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.Modifiers == Keys.Control && e.KeyCode == Keys.R)
            {
                btnGetir_Click(null, null);
                e.Handled = true;
            }
        }

        private void BedenEsleme(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");

            int DagilimId = ds.Fabrics.Select("idx IN (" + idxs + ")")[0]["DagilimId"].ToInt();
            string DosyaNo = ds.Fabrics.Select("idx IN (" + idxs + ")")[0]["DosyaNo"].ToStr();

            DataRow[] drFarkliDosya = ds.Fabrics.Select("idx in (" + idxs + ") and Dosyano <> '" + DosyaNo + "'");

            if (drFarkliDosya.Length > 0 || DosyaNo == "")
            {
                XtraMessageBox.Show("Farklı dosya numaralarına ait satırları ya da dosya numarası alınmamış satırları seçemezsiniz !");
                return;
            }

            using (BedenDagilim bd = new BedenDagilim(DagilimId, DosyaNo))
                bd.ShowDialog();
        }

        private void NakisKartelasi_Click(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");
            Rapor.xrNakisKartelasi xr = new Rapor.xrNakisKartelasi(idxs, "GetNakisKartelasiFromWB");
            xr.ShowPreview();
        }

        void btnSave_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            gvFabrics.EndEditing();
            //this.SetGomlekFiyati();

            int maxIdx = ds.Fabrics.Select("idx=max(idx)")[0][0].ToInt(-1);
            string mailContentUpdateAdet = "";
            string mailContentNewOrder = "";
            string mailSubject = "";
            string mailContent = "";
            string customerName = "WestBrook";

            foreach (DataRow dr in ds.Fabrics.Select("Total <> TotalEx"))
                mailContentUpdateAdet += "<b>idx:</b> " + dr["idx"] + "<br />" +
                                         "<b>Son Toplam:</b> " + dr["TotalEx"] + "<br /><br />";


            ds.Fabrics.Columns["Total"].Expression =
            ds.Fabrics.Columns["GomlekFiyati"].Expression =
            ds.Fabrics.Columns["GomlekFiyati_Tek"].Expression =
            ds.Fabrics.Columns["FabricOk"].Expression =
            ds.Fabrics.Columns["CutOrder"].Expression = string.Empty;
            Save();

            Rfrsh();

            ds.Fabrics.Columns["Total"].Expression = "SUM(Child(FK_SiparisDagilim_Fabric_idx).TotalComputed)";
            ds.Fabrics.Columns["FabricOk"].Expression = "MAX(Child(FK_CutOrder_Fabrics_idx).FabricOK)";
            ds.Fabrics.Columns["CutOrder"].Expression = "MAX(Child(FK_CutOrder_Fabrics_idx).CutOrder)";
            ds.Fabrics.Columns["GomlekFiyati_Tek"].Expression = " ((KumasFiyat * ModelBM * Gumruk) + CMT + AksesuarFiyati + Nakliye + IsNull(SurCharge, 0)) * Kar";
            ds.Fabrics.Columns["GomlekFiyati"].Expression = "GomlekFiyati_Tek * Total";
            gvFabrics.RefreshData();

            foreach (DataRow dr in ds.Fabrics.Select("idx >" + maxIdx))
                mailContentNewOrder += "<b>idx:</b> " + dr["idx"] + "<br /><br />";

            mailSubject = (mailContentNewOrder == "" ? "" : ">Yeni Sipariş Kaydı ") +
                          (mailContentUpdateAdet == "" ? "" : ">Sipariş Kaydı Değişikliği");

            mailContent = (mailContentNewOrder == "" ? "" : "<b>YENİ SİPARİŞ KAYDI</b>" + "<br />" + mailContentNewOrder) +
                          (mailContentUpdateAdet == "" ? "" : "<b>ADET DEĞİŞİKLİĞİ</b>" + "<br />" + mailContentUpdateAdet);


            if (mailSubject != "" && isProduction)
            {
                mailContent += "<b>Müşteri:</b> " + customerName + "<br />";
                Mail.Send("tulay.tuncay@karbel.com", mailSubject, mailContent, "", "");

            }

        }

        void btnKesilen_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (ds.HasChanges())
            {
                btnSave.PerformClick();
            }
            ExecuteScalar("UpdOrdersKesilenAdet");
            Rfrsh();
        }

        void btnArtikel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            ExecuteNonQuery("UpdOrdersArticle");
            Rfrsh();
            //ds.WestbrookOrdersCut.Clear();
            //btnSave.PerformClick();
            //GetDetails("Fabrics;SiparisDagilim;WestbrookOrdersCut", "GetArtikel", LastUpdateFabrics, LastUpdateSiparis);
            //LastUpdateFabrics = ((DateTime)ds.Fabrics.Compute("MAX(ModifiedOn)", string.Empty));
            //LastUpdateSiparis = ((DateTime)ds.SiparisDagilim.Compute("MAX(ModifiedOn)", string.Empty));

            //gvFabrics.RefreshData();
            //gvFabrics.BestFitColumns();
        }

        void gvFabrics_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            if (e.RowHandle > -1)
            {
                switch (e.Column.FieldName)
                {
                    case "DagilimId":
                        //DagilimId = gvFabrics.GetRowCellValue(e.RowHandle, "DagilimId").ToInt();
                        DagilimChanged();
                        break;
                    case "ProductId":
                        int idx = gvFabrics.GetFocusedRowCellValue("idx").ToInt();
                        int ProductId = gvFabrics.GetFocusedRowCellValue("ProductId").ToInt();
                        if (dtCompare.Select("idx =" + idx + " and ProductId <> " + ProductId).Length > 0)
                        {
                            gvFabrics.SetRowCellValue(e.RowHandle, "KumasFiyat", null);
                            this.dtCompare = ds.Fabrics.DefaultView.ToTable(false, "idx", "ProductId");
                        }
                        break;
                }
            }
        }

        private void KumasFiyati(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");

            string productIds = gvFabrics.GetSelectedValues("ProductId");

            using (KumasFiyatiGir kes = new KumasFiyatiGir(productIds, 75))
                if (kes.ShowDialog() == DialogResult.OK)
                {
                    DataTable dtFiyat = kes.dtKumasFiyat;

                    foreach (DataRow dr in ds.Fabrics.Select("idx IN (" + idxs + ")"))
                    {
                        int productId = dr["ProductId"].ToInt(-1);

                        if (productId > 0)
                        {
                            if (dtFiyat.Select("ProductId=" + productId.ToString()).Length > 0)
                            {
                                decimal kumasFiyat = dtFiyat.Select("ProductId=" + productId.ToString())[0]["KumasFiyati"].ToDecimal(-1);
                                dr["KumasFiyat"] = kumasFiyat;
                            }
                        }

                    }
                    btnSave.PerformClick();
                }
        }

        private void AksNumune(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");
            int StyleId = ds.Fabrics.Select("idx IN (" + idxs + ")")[0]["StyleId"].ToInt();
            int BrandId = AppSession.Lookups.Style.FindByStyleId(StyleId)["BrandId"].ToInt();
            Rapor.Aksesuar.xrAksesuarFoyu foy = new Rapor.Aksesuar.xrAksesuarFoyu(idxs, BrandId);
            foy.ShowPreviewDialog();
        }

        private void TelaIhtiyaci(object sender, EventArgs e)
        {
            gvFabrics.EndEditing();
            string idxs = gvFabrics.GetSelectedValues("idx");

            if (ds.HasChanges())
                btnSave.PerformClick();

            bool IsRequestable = true;

            DataRow[] drIdxs = ds.Fabrics.Select("idx IN (" + idxs + ")");
            DataTable dtIdxs = drIdxs.CopyToDataTable();

            int CountTelaCikisEmri = dtIdxs.Select("TelaCikisEmriId is not null").Length;
            if (CountTelaCikisEmri > 0)
            {
                if (XtraMessageBox.Show("Seçtiğiniz satırlarda tela çıkış emri oluşturulmuş satırlar var. Yine de tela ihtiyacını çıkarmak ister misiniz ?", "Critical", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
                    return;
                IsRequestable = true;
            }

            int DosyaNoIsNull = dtIdxs.Select("DosyaNo is null").Length;
            if (DosyaNoIsNull > 0 && drIdxs.Length > 0)
            {
                ShowInfoMessage("Dosya numarası alınmamış satırları seçtiniz. Yalnızca tela ihtiyacını görebileceksiniz.");
                IsRequestable = false;
            }


            using (TelaIhtiyaci ok = new Kauf.TelaIhtiyaci(idxs, 75, "GetTelaIhtiyacFromWBOrders", IsRequestable))
                if (ok.ShowDialog() == DialogResult.OK)
                {
                    if (ok.TelaCikisEmriId > 0)
                    {
                        foreach (DataRow dr in ds.Fabrics.Select("idx IN (" + idxs + ")"))
                        {
                            string OncekiCikislar = dr["TelaCikisEmriId"].ToStr();
                            if (OncekiCikislar == "")
                                dr["TelaCikisEmriId"] = ok.TelaCikisEmriId;
                            else
                                dr["TelaCikisEmriId"] = OncekiCikislar + "," + ok.TelaCikisEmriId;
                        }
                    }
                    btnSave.PerformClick();
                    Rfrsh();
                }

        }

        private void KumasIhtiyaci(object sender, EventArgs e)
        {
            gvFabrics.EndEditing();
            gvDagilim.EndEditing();
            if (ds.HasChanges())
                btnSave.PerformClick();

            string idxs = gvFabrics.GetSelectedValues("idx");
            bool IsRequestable = true;

            DataRow[] drIdxs = ds.Fabrics.Select("idx IN (" + idxs + ")");
            DataTable dtIdxs = drIdxs.CopyToDataTable();

            int KesimNoIsNull = dtIdxs.Select("DosyaNo is null").Length;
            if (KesimNoIsNull > 0 && drIdxs.Length > 0)
            {
                ShowInfoMessage("Dosya numarası alınmamış satırları seçtiniz. Yalnızca kumaş ihtiyacını görebileceksiniz.");
                IsRequestable = false;
            }

            using (Kauf.OrtakKumas ok = new Kauf.OrtakKumas(idxs, 75, "GetOrtakKumasFromWBOrders", IsRequestable))
            {
                DialogResult dr = ok.ShowDialog();
                if (dr == DialogResult.OK)
                    Rfrsh();
            }

        }

        void gvFabrics_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
        {
            if (e.RowHandle > -1)
                if (e.Column.FieldName == "StyleId")
                {
                    e.Appearance.Font = new Font(DevExpress.Utils.AppearanceObject.DefaultFont, FontStyle.Bold);

                    string model = gvFabrics.GetRowCellDisplayText(e.RowHandle, "StyleId").ToStr();
                    int BrandId = gvFabrics.GetRowCellValue(e.RowHandle, "BrandId").ToInt();
                    int SezonId = gvFabrics.GetRowCellValue(e.RowHandle, "SezonId").ToInt();
                    int TalepTipiId = gvFabrics.GetRowCellValue(e.RowHandle, "TalepTipiId").ToInt();

                    int style = ds.Tables["Table4"].Select("Model='" + model + "' and BrandId=" + BrandId + " and SezonId =" + SezonId + " and TalepTipiId =" + TalepTipiId).Length;
                    if (style > 0)
                    {
                        e.Appearance.ForeColor = System.Drawing.Color.Green;
                    }
                    else
                        e.Appearance.ForeColor = System.Drawing.Color.Red;
                }
        }

        private void TalepOlustur_Click(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");
            bool IsRequestable = true;

            DataRow[] drIdxs = ds.Fabrics.Select("idx IN (" + idxs + ")");
            DataTable dtIdxs = drIdxs.CopyToDataTable();

            int AyrimId = dtIdxs.Rows[0]["AyrimId"].ToInt();
            int StyleId = dtIdxs.Rows[0]["StyleId"].ToInt();
            int BrandId = AppSession.Lookups.Style.FindByStyleId(StyleId)["BrandId"].ToInt();
            int SezonId = dtIdxs.Rows[0]["SezonId"].ToInt();
            string OrderRef = dtIdxs.Rows[0]["OrderRef"].ToString();
            string DosyaNo = dtIdxs.Rows[0]["DosyaNo"].ToString();

            DataSet dsError = Session.DataManager.ExecuteDataSet("KontrolPrdTree", idxs,75);

            int CountModel = dsError.Tables["Table"].Rows.Count;
            if (CountModel > 0)
            {
                string Error = CountModel == 1 ? "Aşağıdaki modele ürün ağacı tanımlayın \n\n" : "Aşağıdaki modellere ürün ağacı tanımlayın \n\n";
                foreach (DataRow drModel in dsError.Tables["Table"].Rows)
                {
                    Error += drModel["Model"].ToStr() + " \n";
                }

                Error = Error.RemoveIfEndsWith("\n");
                ShowErrorMessage(Error);
                return;
            }

            if (dsError.Tables["Table1"].Select("Error is not null").Length > 0)
            {
                string Error = "";
                foreach (DataRow drModel in dsError.Tables["Table1"].Select("Error is not null"))
                {
                    Error += drModel["Error"].ToStr() + " \n";
                }

                Error = Error.RemoveIfEndsWith("\n");
                if (XtraMessageBox.Show(Error + "Yine de aksesuar ihtiyacını çıkarmak ister misiniz ?", "Critical", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
                    return;
            }

            if (dsError.Tables["Table7"].Rows.Count > 0)
            {
                string Error = "";
                foreach (DataRow drModel in dsError.Tables["Table7"].Rows)
                {
                    Error += drModel["Error"].ToStr() + " \n";
                }

                Error = Error.RemoveIfEndsWith("\n");
                ShowErrorMessage(Error);
                return;
            }

            if (dsError.Tables["Table2"].Rows.Count > 0)
            {
                string Error = "";
                foreach (DataRow drModel in dsError.Tables["Table2"].Rows)
                {
                    Error += drModel["Error"].ToStr() + " \n";
                }

                Error = Error.RemoveIfEndsWith("\n");
                ShowErrorMessage(Error);
                return;
            }

            if (dsError.Tables["Table3"].Rows.Count > 0)
            {
                string Error = "";
                foreach (DataRow drModel in dsError.Tables["Table3"].Rows)
                {
                    Error += drModel["Model"] + " modelinin aksesuar serisinde  " + drModel["Beden"].ToStr() + " beden(ler)i için aksesuar tanıtılmamış  \n";
                }

                if (XtraMessageBox.Show(Error + "Yine de aksesuar ihtiyacını çıkarmak ister misiniz ?", "Critical", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
                    return;
            }

            if (dsError.Tables["Table5"].Rows.Count > 0)
            {
                string BoyamaRengiEksik = "Aşağıdaki satırlarda DÜĞME BOYAMA işaretlenmiş. Lütfen DÜĞME BOYAMA RENGİ alanına boyama rengini girin ! \n\n";
                foreach (DataRow drModel in dsError.Tables["Table5"].Rows)
                {
                    BoyamaRengiEksik += drModel["idx"] + "\n";
                }

                XtraMessageBox.Show(BoyamaRengiEksik, "Critical");
                return;
            }

            if (dsError.Tables["Table6"].Rows.Count > 0)
            {
                string MukerrerAksesuar = "Dikkat : Aşağıdaki aksesuarlar hem ürün ağacında hem de renkle değişen aksesuarlarda tanımlanmış ! \n\n";
                foreach (DataRow drModel in dsError.Tables["Table6"].Rows)
                {
                    MukerrerAksesuar += "Model : " + drModel["Model"] + " - Stok Kod :" + drModel["StokKod"].ToStr() + " \n";
                }

                if (XtraMessageBox.Show(MukerrerAksesuar + "\nYine de aksesuar ihtiyacını çıkarmak ister misiniz ?", "Critical", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
                    return;
            }

            int CountDosya = Convert.ToInt16(dtIdxs.Compute("Count(DosyaNo)", "DosyaNo ='" + DosyaNo + "'"));
            int CountAksesuarCikisTalebi = dtIdxs.Select("AksesuarCikisTalebi is not null").Length;

            if (CountAksesuarCikisTalebi > 0)
            {
                ShowErrorMessage("Seçtiğiniz satırlarda aksesuar çıkış talebi oluşturulmuş satırlar var. Yalnızca aksesuar ihtiyacını görebileceksiniz");
                IsRequestable = false;
            }
            else if (dtIdxs.Rows.Count > CountDosya)
            {
                XtraMessageBox.Show("Farklı dosya numaralarına ait satırları seçtiniz. Yalnızca aksesuar ihtiyacını görebileceksiniz. \n\nUyarı : Aksesuar çıkış talebi oluşturmak için aynı dosya numarasına ait satırları seçin !", "Critical");
                IsRequestable = false;
            }
            else
            {
                bool BosAyrim = dtIdxs.Select("Isnull(OrderRef,'') = '' ").Length > 0;
                if (BosAyrim)
                {
                    ShowErrorMessage("Lütfen OrderRef alanını boş bırakmayın !");
                    return;
                }

                bool FarkliAyrim = dtIdxs.Select("Isnull(AyrimId,0) <> " + AyrimId).Length > 0;
                if (FarkliAyrim)
                {
                    ShowErrorMessage("Farklı siparişe ait satırları aynı çıkış emrinde seçemezsiniz!");
                    return;
                }
                //    int CountYuklemeTipi = dtIdxs.Select("ShipMethodId is  null").Length;
                //    if (CountYuklemeTipi > 0)
                //    {
                //        ShowErrorMessage("Lütfen yükleme şekli girin !");
                //        gvFabrics.FocusedColumn = gvFabrics.Columns["ShipMethodId"];
                //        return;
                //    }

                //    int CountUcakYuklemesi = dtIdxs.Select("ShipMethodId= 2").Length;
                //    if (CountUcakYuklemesi > 0)
                //    {
                //        if (dsError.Tables["Table4"].Rows.Count == 0)
                //        {
                //            ShowErrorMessage("Yükleme şekliniz uçak olduğundan ürün ağacınızda poşet seçmelisiniz !");
                //            return;
                //        }
                //    }
            }

            bool IsNumune = false;

            //TODO K.A : Bekir Bey numunelerde de satınalma geçilsin istiyor. Eğer ilerde satınalma geçilmesin istenirse alttaki kodu aç.
            /*
            DataRow[] drDosyaNo = dtIdxs.Select("Isnull(DosyaNo,'') <> ''");

            if (drDosyaNo.Length == 0)
            {
                DataRow[] drUretimTipi = dtIdxs.Select("Isnull(TalepTipiId,0) in (0,1)");
                IsNumune = !(drUretimTipi.Length > 0);
            }
            else
            {
                IsNumune = dtIdxs.Select("Isnull(DosyaNo,'') = '' or Isnull(DosyaNo,'') like 'F%' or Isnull(DosyaNo,'') like 'K%'").Length == 0;
            }
            */
            using (Kauf.AksesuarIhtiyaci ai = new Kauf.AksesuarIhtiyaci(idxs, IsRequestable, BrandId, SezonId, OrderRef, IsNumune, "createAksesuarTalepforOrders"))
                if (ai.ShowDialog() == DialogResult.OK)
                {
                    if (ai.AksesuarCikisTalebiId != "")
                    {
                        foreach (DataRow dr in ds.Fabrics.Select("idx IN (" + idxs + ")"))
                        {
                            dr["AksesuarCikisTalebi"] = ai.AksesuarCikisTalebiId;
                        }
                    }
                    btnSave.PerformClick();

                    if (DosyaNo.Substring(0, 1) == "N")
                    {
                        Rapor.Aksesuar.xrYikamaTalimati foy = new Rapor.Aksesuar.xrYikamaTalimati(DosyaNo);
                        System.IO.MemoryStream ms = new System.IO.MemoryStream();
                        foy.ExportToXls(ms);
                        byte[] foyPdf = ms.ToArray();

                        string To = "";
                        string Cc = "";
                        string FileName = DosyaNo + ".xls";
                        string Subject = "Numune Föyü Yıkama Talimatı";
                        string Body = DosyaNo + " dosyasının barkod bilgileri ekteki dosyadadır.";

                        DataRow[] drTO = AppSession.Lookups.V_User.Select("Unvan = 'Etiket ve Barkod Basım Elemanı'");
                        if (drTO.Length > 0)
                        {
                            foreach (DataRow dr in drTO)
                            {
                                if (dr["Email"].ToStr() != "")
                                    To += dr["Email"].ToStr() + ",";
                            }
                            To = To.RemoveIfEndsWith(",");

                            if (!isProduction)
                            {
                                To = "kadirakis@gmail.com";
                            }
                            Mail.Send(To, Subject, Body, Cc, foyPdf, FileName, "");
                        }

                    }

                    Rfrsh();
                }
        }

        #region Aksesuar Toplu Çıkış oluşturma
        private void AksesuarIhtiyaciToplu(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");
            bool IsRequestable = true;

            DataRow[] drIdxs = ds.Fabrics.Select("idx IN (" + idxs + ")");
            DataTable dtOrders = drIdxs.CopyToDataTable();
            
            int AyrimId = dtOrders.Rows[0]["AyrimId"].ToInt();
            int StyleId = dtOrders.Rows[0]["StyleId"].ToInt();
            int BrandId = AppSession.Lookups.Style.FindByStyleId(StyleId)["BrandId"].ToInt();
            int SezonId = dtOrders.Rows[0]["SezonId"].ToInt();
            string OrderRef = dtOrders.Rows[0]["OrderRef"].ToString();

            #region Aksesuar Kontrol
            DataSet dsError = ExecuteDataSet("KontrolPrdTree", idxs, 75);

            int CountModel = dsError.Tables["Table"].Rows.Count;
            if (CountModel > 0)
            {
                string Error = CountModel == 1 ? "Aşağıdaki modele ürün ağacı tanımlayın \n\n" : "Aşağıdaki modellere ürün ağacı tanımlayın \n\n";
                foreach (DataRow drModel in dsError.Tables["Table"].Rows)
                {
                    Error += drModel["Model"].ToStr() + " \n";
                }

                Error = Error.RemoveIfEndsWith("\n");
                ShowErrorMessage(Error);
                return;
            }

            if (dsError.Tables["Table1"].Select("Error is not null").Length > 0)
            {
                string Error = "";
                foreach (DataRow drModel in dsError.Tables["Table1"].Select("Error is not null"))
                {
                    Error += drModel["Error"].ToStr() + " \n";
                }

                Error = Error.RemoveIfEndsWith("\n");
                if (XtraMessageBox.Show(Error + "Yine de aksesuar ihtiyacını çıkarmak ister misiniz ?", "Critical", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
                    return;
            }

            if (dsError.Tables["Table7"].Rows.Count > 0)
            {
                string Error = "";
                foreach (DataRow drModel in dsError.Tables["Table7"].Rows)
                {
                    Error += drModel["Error"].ToStr() + " \n";
                }

                Error = Error.RemoveIfEndsWith("\n");
                ShowErrorMessage(Error);
                return;
            }

            if (dsError.Tables["Table2"].Rows.Count > 0)
            {
                string Error = "";
                foreach (DataRow drModel in dsError.Tables["Table2"].Rows)
                {
                    Error += drModel["Error"].ToStr() + " \n";
                }

                Error = Error.RemoveIfEndsWith("\n");
                ShowErrorMessage(Error);
                return;
            }

            if (dsError.Tables["Table3"].Rows.Count > 0)
            {
                string Error = "";
                foreach (DataRow drModel in dsError.Tables["Table3"].Rows)
                {
                    Error += drModel["Model"] + " modelinin aksesuar serisinde  " + drModel["Beden"].ToStr() + " beden(ler)i için aksesuar tanıtılmamış  \n";
                }

                if (XtraMessageBox.Show(Error + "Yine de aksesuar ihtiyacını çıkarmak ister misiniz ?", "Critical", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
                    return;
            }

            if (dsError.Tables["Table5"].Rows.Count > 0)
            {
                string BoyamaRengiEksik = "Aşağıdaki satırlarda DÜĞME BOYAMA işaretlenmiş. Lütfen DÜĞME BOYAMA RENGİ alanına boyama rengini girin ! \n\n";
                foreach (DataRow drModel in dsError.Tables["Table5"].Rows)
                {
                    BoyamaRengiEksik += drModel["idx"] + "\n";
                }

                XtraMessageBox.Show(BoyamaRengiEksik, "Critical");
                return;
            }

            if (dsError.Tables["Table6"].Rows.Count > 0)
            {
                string MukerrerAksesuar = "Dikkat : Aşağıdaki aksesuarlar hem ürün ağacında hem de renkle değişen aksesuarlarda tanımlanmış ! \n\n";
                foreach (DataRow drModel in dsError.Tables["Table6"].Rows)
                {
                    MukerrerAksesuar += "Model : " + drModel["Model"] + " - Stok Kod :" + drModel["StokKod"].ToStr() + " \n";
                }

                if (XtraMessageBox.Show(MukerrerAksesuar + "\nYine de aksesuar ihtiyacını çıkarmak ister misiniz ?", "Critical", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
                    return;
            }
            #endregion

            int DosyaNoAlinmamis = dtOrders.Select("Isnull(DosyaNo,'') =''").Length;
            int CountAksesuarCikisTalebi = dtOrders.Select("AksesuarCikisTalebi is not null").Length;

            if (CountAksesuarCikisTalebi > 0)
            {
                ShowErrorMessage("Seçtiğiniz satırlarda aksesuar çıkış talebi oluşturulmuş satırlar var. Yalnızca aksesuar ihtiyacını görebileceksiniz");
                IsRequestable = false;
            }
            else if (DosyaNoAlinmamis > 0)
            {
                ShowErrorMessage("Seçtiğiniz satırlarda dosya numarası alınmamış satırlar var. Yalnızca aksesuar ihtiyacını görebileceksiniz. \n\nUyarı : Aksesuar çıkış talebi oluşturmak için dosya numarası alın!");
                IsRequestable = false;
            }
            else
            {
                bool BosAyrim = dtOrders.Select("Isnull(OrderRef,'') = '' ").Length > 0;
                if (BosAyrim)
                {
                    ShowErrorMessage("Lütfen OrderRef alanını boş bırakmayın !");
                    return;
                }

                bool FarkliAyrim = dtOrders.Select("Isnull(AyrimId,0) <> " + AyrimId).Length > 0;
                if (FarkliAyrim)
                {
                    ShowErrorMessage("Farklı siparişe ait satırları aynı çıkış emrinde seçemezsiniz!");
                    return;
                }
            }

            bool IsNumune = false;

            //TODO K.A : Bekir Bey numunelerde de satınalma geçilsin istiyor. Eğer ilerde satınalma geçilmesin istenirse alttaki kodu aç.
            /*
            DataRow[] drDosyaNo = dtIdxs.Select("Isnull(DosyaNo,'') <> ''");

            if (drDosyaNo.Length == 0)
            {
                DataRow[] drUretimTipi = dtIdxs.Select("Isnull(TalepTipiId,0) in (0,1)");
                IsNumune = !(drUretimTipi.Length > 0);
            }
            else
            {
                IsNumune = dtIdxs.Select("Isnull(DosyaNo,'') = '' or Isnull(DosyaNo,'') like 'F%' or Isnull(DosyaNo,'') like 'K%'").Length == 0;
            }
            */

            using (AksesuarIhtiyaciCoklu ai = new AksesuarIhtiyaciCoklu(dtOrders, idxs, IsRequestable, BrandId, SezonId, OrderRef, IsNumune, "createAksesuarTalepforOrders"))
                if (ai.ShowDialog() == DialogResult.OK)
                {
                    DataRow[] drAksesuarCikisTalepleri = ai.distinctDosya.Select("AksesuarCikisTalebiId is not null");
                    if (drAksesuarCikisTalepleri.Length > 0)
                    {
                        foreach (DataRow drAksesuarCikisTalebiId in drAksesuarCikisTalepleri)
                        {
                            string DosyaNo = drAksesuarCikisTalebiId["DosyaNo"].ToStr();
                            string AksesuarCikisTalebiId = drAksesuarCikisTalebiId["AksesuarCikisTalebiId"].ToStr();

                            foreach (DataRow dr in ds.Fabrics.Select("Isnull(DosyaNo,'') = '" + DosyaNo + "'"))
                                dr["AksesuarCikisTalebi"] = AksesuarCikisTalebiId;

                        }
                        btnSave.PerformClick();

                        foreach (DataRow drAksesuarCikisTalebiId in drAksesuarCikisTalepleri)
                        {
                            string DosyaNo = drAksesuarCikisTalebiId["DosyaNo"].ToStr();

                            if (DosyaNo.Substring(0, 1) == "N")
                            {
                                Rapor.Aksesuar.xrYikamaTalimati foy = new Rapor.Aksesuar.xrYikamaTalimati(DosyaNo);
                                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                                foy.ExportToXls(ms);
                                byte[] foyPdf = ms.ToArray();

                                string To = "";
                                string Cc = "";
                                string FileName = DosyaNo + ".xls";
                                string Subject = "Numune Föyü Yıkama Talimatı";
                                string Body = DosyaNo + " dosyasının barkod bilgileri ekteki dosyadadır.";

                                DataRow[] drTO = AppSession.Lookups.V_User.Select("Unvan = 'Etiket ve Barkod Basım Elemanı'");
                                if (drTO.Length > 0)
                                {
                                    foreach (DataRow dr in drTO)
                                    {
                                        if (dr["Email"].ToStr() != "")
                                            To += dr["Email"].ToStr() + ",";
                                    }
                                    To = To.RemoveIfEndsWith(",");

                                    if (!isProduction)
                                    {
                                        To = "kadirakis@gmail.com";
                                    }
                                    Mail.Send(To, Subject, Body, Cc, foyPdf, FileName, "");
                                }
                            }
                        }
                    }
                    Rfrsh();
                }
        }
        #endregion

        private void RenkleDegisen(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");
            using (Aksesuar.AksSeriRenkleDegisen ua = new Aksesuar.AksSeriRenkleDegisen(idxs, "WB"))
                if (ua.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    DataRow[] r = ds.WBOrdersAksesuar.Select("idx in (" + idxs + ")", string.Empty);
                    for (int i = 0; i < r.Length; i++)
                        ds.WBOrdersAksesuar.RemoveWBOrdersAksesuarRow((MyData.WBOrdersAksesuarRow)r[i]);

                    //GetDetails("TexcommOrdersAksesuar", "GetTexcommOrdersAksesuar", dosyalar);
                }
        }

        private void CreateVerticalGrid()
        {
            string BrandIds = AppSession.Lookups.Brand.Select("CustomerId = 75").CopyToDataTable().GetValuesofSpecifiedColumn("BrandId",",");
            DataTable dtAYrim = AppSession.Lookups.Ayrim.Select("BrandId in (" + BrandIds + ")").CopyToDataTable();
            RepositoryItemGridLookUpEdit RIAyrim = GetCustomGLE(dtAYrim, "OrderRef", "AyrimId");

            vgc.Rows.AddRange(new BaseRow[] {
                AddItem("Aktif", typeof(int),RI(Rp.stGenel)),
                AddItem("Durum", typeof(string)),
                AddItem("StyleId", typeof(int),RI(Rp.Style)),
                AddItem("OrderRef", typeof(int),RIAyrim),
                AddItem("Pos", typeof(string)),
                AddItem("DosyaNo", typeof(string)),
                AddItem("ProductId", typeof(int), RI(Rp.V_Kumas)),
                AddItem("CodeMainFabric", typeof(string))
            });

            vgc.OptionsBehavior.UseEnterAsTab = true;
            vgc.LayoutStyle = DevExpress.XtraVerticalGrid.LayoutViewStyle.SingleRecordView;
            vgc.CustomDrawRowHeaderCell += new CustomDrawRowHeaderCellEventHandler(vgc_CustomDrawRowHeaderCell);
            vgc.Appearance.RowHeaderPanel.BackColor = System.Drawing.Color.LightBlue;

            vgc.SetCellValue(vgc.Rows["Aktif"], 0, 1);
            vgc.FocusedRow = vgc.Rows["Durum"];
            vgc.BestFit();
        }

        private void CancelKesimNo(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");

            gvFabrics.EndEditing();
            if (ds.HasChanges())
                btnSave.PerformClick();
            if (XtraMessageBox.Show("Seçtiğiniz satırların kesim numaraları iptal edilecek. Emin misiniz?", "Kritik!", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
                return;
            GetDetails("Fabrics", "CancelKesimforKauf", idxs, 75);
        }

        public BaseRow AddItem(string name, Type t, params RepositoryItem[] ri)
        {
            return AddItem(vgc, name, t, ri);
        }

        object GetVal(string FieldName)
        {
            return vgc.GetCellValue(vgc.Rows[FieldName], vgc.FocusedRecord);
        }

        int DagilimId = 0;
        private void DagilimChanged()
        {
            try
            {
                gvDagilim.CloseEditor();
                gvDagilim.BeginUpdate();

                DagilimId = gvFabrics.GetFocusedRowCellValue("DagilimId").ToInt();
                MyData.DagilimRow r = AppSession.Lookups.Dagilim.FindByDagilimId(DagilimId);
                if (r != null)
                    for (int i = 1; i <= 28; i++)
                    {
                        string fieldName = String.Format("A{0:00}", i);
                        string cap = r[String.Format("A{0:00}", i)].ToString();

                        if (cap != "")
                        {
                            gvDagilim.Columns[fieldName].Caption = cap;
                        }
                        else
                            gvDagilim.Columns[fieldName].Caption = " ";
                    }
            }
            catch (Exception Ex)
            {
                throw Ex;
            }
            finally
            {
                gvDagilim.EndUpdate();
                gvDagilim.BestFitColumns();
            }
        }
        private void DosyaKapama_Click(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");

            int language = cbenglish.Checked ? 1 : 0;
            Planlama.xrDosyaKapama DosyaKapama = new Planlama.xrDosyaKapama(idxs, 75, language);
            DosyaKapama.ShowPreview();
        }

        private void KumasEni_Click(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");

            string productIds = string.Empty;
            productIds = GetProductIds(productIds);

            using (KumasEniSec kes = new KumasEniSec(productIds, 75))
                if (kes.ShowDialog() == DialogResult.OK)
                {
                    DataTable dtEn = kes.dtEn;

                    foreach (DataRow dr in ds.Fabrics.Select("idx IN (" + idxs + ")"))
                    {
                        int productId = dr["ProductId"].ToInt(-1);
                        int product1Id = dr["ProductId1"].ToInt(-1);
                        int product2Id = dr["ProductId2"].ToInt(-1);
                        int product3Id = dr["ProductId3"].ToInt(-1);

                        if (productId > 0)
                        {
                            if (dtEn.Select("ProductId=" + productId.ToString()).Length > 0)
                            {
                                decimal kumasEn = dtEn.Select("ProductId=" + productId.ToString())[0]["En"].ToDecimal(-1);
                                dr["KumasEni"] = kumasEn;
                            }
                        }
                        if (product1Id > 0)
                        {
                            if (dtEn.Select("ProductId=" + product1Id.ToString()).Length > 0)
                            {
                                decimal kumasEn = dtEn.Select("ProductId=" + product1Id.ToString())[0]["En"].ToDecimal(-1);
                                dr["Garni1En"] = kumasEn;
                            }
                        }
                        if (product2Id > 0)
                        {
                            if (dtEn.Select("ProductId=" + product2Id.ToString()).Length > 0)
                            {
                                decimal kumasEn = dtEn.Select("ProductId=" + product2Id.ToString())[0]["En"].ToDecimal(-1);
                                dr["Garni2En"] = kumasEn;
                            }
                        }
                        if (product3Id > 0)
                        {
                            if (dtEn.Select("ProductId=" + product3Id.ToString()).Length > 0)
                            {
                                decimal kumasEn = dtEn.Select("ProductId=" + product3Id.ToString())[0]["En"].ToDecimal(-1);
                                dr["Garni3En"] = kumasEn;
                            }

                        }
                    }
                    btnSave.PerformClick();
                }
        }

        private string GetProductIds(string idxs)
        {
            foreach (int rowHandle in gvFabrics.GetSelectedRows())
                if (rowHandle > -1)
                {
                    idxs += gvFabrics.GetRowCellValue(rowHandle, "ProductId").ToString() + ",";
                    idxs += gvFabrics.GetRowCellValue(rowHandle, "ProductId1").ToString() + ",";
                    idxs += gvFabrics.GetRowCellValue(rowHandle, "ProductId2").ToString() + ",";
                    idxs += gvFabrics.GetRowCellValue(rowHandle, "ProductId3").ToString() + ",";
                }


            if (idxs.Substring(idxs.Length - 1, 1) == ",")
                idxs = idxs.Substring(0, idxs.Length - 1);
            return idxs;
        }


        private void Rfrsh()
        {
            int FocusedIdx = gvFabrics.GetFocusedRowCellValue("idx").ToInt();

            ds.Clear();

            GetDetails("Fabrics;SiparisDagilim;WestbrookOrdersCut;WBOrdersAksesuar", "GetOrdersFiltered",
                GetVal("Aktif").ToInt(),
                GetVal("Durum").ToStr(),
                GetVal("StyleId").ToInt(),
                GetVal("OrderRef").ToInt(),
                GetVal("Pos").ToStr(),
                GetVal("DosyaNo").ToStr(),
                GetVal("ProductId").ToInt(),
                GetVal("CodeMainFabric").ToStr(),
                cbPreSubmit.Checked
                );

            gvFabrics.RefreshData();
            gvFabrics.BestFitColumns();

            gvFabrics.FocusedRowHandle = gvFabrics.LocateByValue("idx", FocusedIdx);
        }

        private void SetGomlekFiyati()
        {
            foreach (MyData.FabricsRow dr in ds.Fabrics.Rows)
            {
                MyData.StyleRow drStyle = AppSession.Lookups.Style.FindByStyleId(dr.StyleId);

                if (!dr.IsKumasFiyatNull() &&
                    !drStyle.IsModelTipiNull() &&
                    //!dr.IsBirimMetrajNull() &&
                    !dr.IsGumrukNull() &&
                    !dr.IsCMTNull() &&
                    !dr.IsAksesuarFiyatiNull() &&
                    !dr.IsNakliyeNull() &&
                    !dr.IsKarNull() &&
                     dr["Total"].ToInt() > 0 &&
                    !dr.IsSurChargeNull())
                {
                    dr.GomlekFiyat = (((dr.KumasFiyat * drStyle.ModelTipi * dr.Gumruk) + dr.CMT + dr.AksesuarFiyati + dr.Nakliye + dr.SurCharge) * dr.Kar * dr["Total"].ToInt());
                }
            }
        }

        private void GetStockSituation(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");

            if (idxs != String.Empty)
                AppSession.MainForm.ShowMdiChildForm(typeof(Tuketim), idxs);
        }

        private void EksikleriExceldeGoster(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");

            if (idxs != String.Empty)
            {
                DataSet dataSet = ExecuteDataSet("GetWestbrookTuketim2", idxs);

                DataTable TuketimMaster = dataSet.Tables[0];  // Arada ProductId var
                DataTable TuketimDetail = dataSet.Tables[1];

                DataRow[] drTuketimMaster = TuketimMaster.Select("Durum like 'EKSİK!'");

                IWorkbook workbook = Factory.GetWorkbook();
                IRange cells = workbook.Worksheets[0].Cells["A1:Z1"];
                
                int indexMaster = 0, indexDetail;
                foreach (DataColumn column in TuketimMaster.Columns)
                {
                    if (column.ColumnName.Equals("ProductId"))
                        continue;

                    cells[0, indexMaster].Value = column.ColumnName;
                    ++indexMaster;
                }
                indexDetail = indexMaster;
                foreach (DataColumn column in TuketimDetail.Columns)
                {
                    if (column.ColumnName.Equals("ProductId"))
                        continue;

                    cells[0, indexMaster].Value = column.ColumnName;
                    ++indexMaster;
                }

                
                
                IRange cellsTablo = workbook.Worksheets[0].Cells["A2:Z200"];
                int i, j, k = 0, l, m, p;
                foreach (DataRow drTM in drTuketimMaster)
                {
                    DataRow[] drTuketimDetail = TuketimDetail.Select("ProductId = " + drTM["ProductId"]);

                    l = m = 0;
                    cellsTablo[k, l++].Value = drTM[m++].ToStr();
                    m++; // Burada ProductId kolonu by-pass ediliyor
                    //cellsTablo[k, l++].Value = drTM[m++].ToStr();
                    cellsTablo[k, l].NumberFormat = "#.00;-#.00;;@";
                    cellsTablo[k, l++].Value = drTM[m++].ToDecimal();
                    cellsTablo[k, l].NumberFormat = "#.00;-#.00;;@";
                    cellsTablo[k, l++].Value = drTM[m++].ToDecimal(); 
                    cellsTablo[k, l].NumberFormat = "#.00;-#.00;;@";
                    cellsTablo[k, l++].Value = drTM[m++].ToDecimal(); 
                    cellsTablo[k, l].NumberFormat = "#.00;-#.00;;@";
                    cellsTablo[k, l++].Value = drTM[m++].ToDecimal(); 
                    cellsTablo[k, l++].Value = drTM[m++].ToStr();
                    p = k;

                    foreach (DataRow drTD in drTuketimDetail)
                    {
                        i = indexDetail;
                        j = 0;
                            cellsTablo[k, i++].Value = drTD[j++].ToStr();
                            //cellsTablo[k, i++].Value = drTD[j++].ToStr();
                            j++; // TuketimDetail icin de ProductId kolonu by-pass ediliyor
                            cellsTablo[k, i++].Value = drTD[j++].ToStr();
                            cellsTablo[k, i].NumberFormat = "###;-###;;@";
                            cellsTablo[k, i++].Value = drTD[j++].ToStr().ToDecimal();
                            cellsTablo[k, i].NumberFormat = "#.00;-#.00;;@";    
                        cellsTablo[k, i++].Value = drTD[j++].ToStr().ToDecimal();
                            cellsTablo[k, i++].Value = drTD[j++].ToStr();
                            ++k;
                    }

                    for (int n = 0; n < 6; ++n)
                        if (drTuketimDetail.Length > 1)
                            cellsTablo.Cells[p, n, p + drTuketimDetail.Length -1, n].Merge();
                    
                }

                workbook.Worksheets[0].UsedRange.Columns.AutoFit();
                for (int col = 0; col < workbook.Worksheets[0].UsedRange.ColumnCount; col++)
                    workbook.Worksheets[0].Cells[1, col].ColumnWidth *= 1.15;

                workbook.Worksheets[0].UsedRange.Borders.Weight = BorderWeight.Thin;
                workbook.Worksheets[0].UsedRange.Borders[BordersIndex.InsideHorizontal].Weight =
                workbook.Worksheets[0].UsedRange.Borders[BordersIndex.InsideVertical].Weight = BorderWeight.Hairline;

                workbook.Worksheets[0].Range["E:F"].Font.Bold = true;

                System.IO.MemoryStream memoryStream2 = new System.IO.MemoryStream();
                workbook.SaveToStream(memoryStream2, SpreadsheetGear.FileFormat.OpenXMLWorkbook);
                byte[] BLOB = memoryStream2.ToArray();
                DevTeam.FileManager.RunTempFile("TuketimEksikler.xlsx", BLOB);
                
                workbook.Close();

            }
        }

        private void EN_TR_Click(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");

            DataTable dtTranslate = ExecuteDataTable("WBtranslateSelectedIdx", idxs);
            if (dtTranslate.Rows.Count > 0)
            {
                AppSession.MainForm.ShowMdiChildForm(typeof(Ref), dtTranslate);
            }
        }

        private void KesimBilgi_Click(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");
            xrKesimBilgiFormu KesimBilgi = new xrKesimBilgiFormu(idxs, "GetWBKesimBilgiFormu");
            KesimBilgi.ShowPreviewDialog();
        }

        private void KesimFoyu_Click(object sender, EventArgs e)
        {
            bool HasDosyaNo = false;
            bool isNumune = false;

            string idxs = gvFabrics.GetSelectedValues("idx");

            if (idxs != String.Empty)
            {
                gvFabrics.EndEditing();
                if (ds.HasChanges())
                    btnSave.PerformClick();

                DataTable dtTranslate = null;

                DataRow[] dr = ds.Fabrics.Select("idx IN (" + idxs + ") and ISNULL(DosyaNo,'')<>''");
                if (dr.Length > 0 && dr.Length < ds.Fabrics.Select("idx IN (" + idxs + ")").Length)
                {
                    XtraMessageBox.Show("Sectiğiniz satırların bir kısmı için dosya numarası alınmış. Lütfen seçtiğiniz satırları kontrol ediniz", "Critical");
                    return;
                }
                else if (dr.Length == ds.Fabrics.Select("idx IN (" + idxs + ")").Length && dr.Length > 0)
                {
                    HasDosyaNo = true;
                }
                else if (dr.Length == 0)
                {

                    DataTable dt = ds.Fabrics.Select("idx IN (" + idxs + ")").CopyToDataTable();
                    int countStyle = Convert.ToInt16(dt.Compute("Count(StyleId)", "StyleId =" + dt.Rows[0]["StyleId"].ToString()));
                    if (dt.Rows.Count > countStyle)
                    {
                        XtraMessageBox.Show("Seçtiğiniz satırlarda farklı model bilgileri mevcut!", "Critical");
                        return;
                    }

                    int countDagilim = Convert.ToInt16(dt.Compute("Count(DagilimId)", "DagilimId =" + dt.Rows[0]["DagilimId"].ToString()));
                    if (dt.Rows.Count > countDagilim)
                    {
                        XtraMessageBox.Show("Seçtiğiniz satırlarda farklı dağılım tipleri mevcut!", "Critical");
                        return;
                    }

                    int BosEn = dt.Select("KumasEni is null or (ProductId1 is not null and Garni1En is null) or (ProductId2 is not null and Garni2En is null) or (ProductId3 is not null and Garni3En is null)").Length;
                    if (BosEn > 0)
                    {
                        if (XtraMessageBox.Show("Seçtiğiniz satırlarda girilmemiş en bilgileri var. Yine de kesim föyü çıkarmak ister misiniz ?", "Critical", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
                            return;
                    }

                    dtTranslate = ExecuteDataTable("WBtranslateSelectedIdx", idxs);
                    if (dtTranslate.Select("TR is null").Length > 0)
                    {
                        using (Ref rf = new Ref(dtTranslate))
                            rf.ShowDialog();

                    }

                    using (Siparisler.SiparisDosyaBilgileri sdb = new Siparisler.SiparisDosyaBilgileri(idxs, dt))
                        if (sdb.ShowDialog() == DialogResult.Cancel)
                        {
                            return;
                        }
                        else
                        {
                            Rfrsh();
                            DataTable dt2 = ds.Fabrics.Select("idx IN (" + idxs + ")").CopyToDataTable();
                            string kesimNo = dt2.Rows[0].ItemArray.GetValue(14).ToStr();
                            isNumune = kesimNo.StartsWith("N") == true ? true : false;

                            int DagilimId = ds.Fabrics.Select("idx IN (" + idxs + ")")[0]["DagilimId"].ToInt();
                            string DosyaNo = ds.Fabrics.Select("idx IN (" + idxs + ")")[0]["DosyaNo"].ToStr();
                            using (BedenDagilim bd = new BedenDagilim(DagilimId, DosyaNo))
                                bd.ShowDialog();
                        }
                }

                if (dtTranslate == null)
                {
                    dtTranslate = ExecuteDataTable("WBtranslateSelectedIdx", idxs);
                    if (dtTranslate.Select("TR is null").Length > 0)
                    {
                        using (Ref rf = new Ref(dtTranslate))
                            rf.ShowDialog();
                    }
                }

                xrKesimWestbrook KesimFoyu = new xrKesimWestbrook(idxs, "GetOrdersFoy" + (cbenglish.Checked ? "English" : string.Empty), cbenglish.Checked); 
                KesimFoyu.Landscape = false;
                KesimFoyu.ShowPreviewDialog();

                if (!(HasDosyaNo || isNumune))
                {
                    int language = cbenglish.Checked ? 1 : 0;
                    xrDosyaKapama DosyaKapama = new xrDosyaKapama(idxs, 75, language);
                    DosyaKapama.ShowPreviewDialog();

                    xrKesimBilgiFormu KesimRaporu = new xrKesimBilgiFormu(idxs, "GetWBKesimBilgiFormu");
                    KesimRaporu.ShowPreviewDialog();

                    int StyleId = ds.Fabrics.Select("idx IN (" + idxs + ")")[0]["StyleId"].ToInt();
                    int BrandId = AppSession.Lookups.Style.FindByStyleId(StyleId)["BrandId"].ToInt();
                    xrAksesuarFoyu AksesuarKartela = new xrAksesuarFoyu(idxs, BrandId);
                    AksesuarKartela.ShowPreviewDialog();
                }
            }
        }

        private void DosyayaEkle_Click(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");
            if (idxs != String.Empty)
            {
                gvFabrics.EndEditing();
                if (ds.HasChanges())
                    btnSave.PerformClick();

                DataRow[] dr = ds.Fabrics.Select("idx IN (" + idxs + ") and ISNULL(DosyaNo,'')<>''");
                if (dr.Length > 0)
                {
                    XtraMessageBox.Show("Seçtiğiniz satırlarda dosya numarası alınmış satırlar var. Lütfen seçtiğiniz satırları kontrol ediniz", "Critical");
                    return;
                }
                else if (dr.Length == 0)
                {
                    using (VarolanDosyayaEkle vde = new VarolanDosyayaEkle())
                        if (vde.ShowDialog() == DialogResult.OK)
                        {
                            string DosyaNo = vde.DosyaNo;
                            DataTable dt = ds.Fabrics.Select("idx IN (" + idxs + ")").CopyToDataTable();

                            if (ds.Fabrics.Select("DosyaNo = " + "'" + DosyaNo + "'").Length == 0)
                            {
                                XtraMessageBox.Show("'" + DosyaNo + "'" + " numaralı dosya bulunamadı!", "Hata");
                                return;
                            }

                            int isDosyaClosed = ExecuteScalar("IsClosedDosya", DosyaNo).ToInt(-1);

                            if (isDosyaClosed == 1)
                            {
                                XtraMessageBox.Show("Bu dosya kapanmış veya iptal edilmiş.", "Hata");
                                return;
                            }

                            DataTable dtEkle = ds.Fabrics.Select("DosyaNo = " + "'" + DosyaNo + "'").CopyToDataTable();
                            dt.Merge(dtEkle);

                            int countModel = Convert.ToInt16(dt.Compute("Count(StyleId)", "StyleId ='" + dt.Rows[0]["StyleId"].ToString() + "'"));
                            if (dt.Rows.Count > countModel)
                            {
                                XtraMessageBox.Show("Seçtiğiniz satırlarda veya eklemek istediğiniz dosyada farklı model bilgileri mevcut. Lütfen aynı modele ait satırları seçin !", "Hata");
                                return;
                            }

                            int countDagilim = Convert.ToInt16(dt.Compute("Count(DagilimId)", "DagilimId ='" + dt.Rows[0]["DagilimId"].ToString() + "'"));
                            if (dt.Rows.Count > countDagilim)
                            {
                                XtraMessageBox.Show("Seçtiğiniz satırlarda farklı dağılım bilgileri mevcut. Lütfen dağılım bilgisini kontrol edin!", "Hata");
                                return;
                            }

                            int BosEn = dt.Select("KumasEni is null or (ProductId1 is not null and Garni1En is null) or (ProductId2 is not null and Garni2En is null) or (ProductId3 is not null and Garni3En is null)").Length;
                            if (BosEn > 0)
                            {
                                if (XtraMessageBox.Show("Seçtiğiniz satırlarda girilmemiş en bilgileri var. Yine de kesim föyü çıkarmak ister misiniz ?", "Critical", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
                                    return;
                            }

                            ExecuteNonQuery("UpdOrdersKesimNoEkle", idxs, DosyaNo);
                            Rfrsh();

                        }
                }
            }
        }

        private void Dagilimlar_Click(object sender, EventArgs e)
        {
            string idxs = gvFabrics.GetSelectedValues("idx");
            if (idxs != String.Empty)
            {
                gvFabrics.EndEditing();
                if (ds.HasChanges())
                    btnSave.PerformClick();

                DataRow[] dr = ds.Fabrics.Select("idx IN (" + idxs + ")");

                if (dr.Length > 0)
                {
                    DataTable dt = ds.Fabrics.Select("idx IN (" + idxs + ")").CopyToDataTable();
                    int countDagilim = Convert.ToInt16(dt.Compute("Count(DagilimId)", "DagilimId =" + dt.Rows[0]["DagilimId"].ToString()));
                    if (dt.Rows.Count > countDagilim)
                    {
                        XtraMessageBox.Show("Seçtiğiniz satırlarda farklı dağılım tipleri mevcut!", "Critical");
                        return;
                    }

                    using (BedenDagilimi tdb = new BedenDagilimi(idxs))
                        if (tdb.ShowDialog() == DialogResult.Cancel)
                        {
                            return;
                        }
                }
                else
                {
                    XtraMessageBox.Show("Satırları seçmediniz!", "Critical");
                    return;
                }
            }
        }
        
        private void btnTemizle_Click(object sender, EventArgs e)
        {
            foreach (BaseRow r in vgc.Rows)
                vgc.SetCellValue(r, 0, null);
        }

        private void btnGetir_Click(object sender, EventArgs e)
        {
            if (ds.HasChanges())
                if (XtraMessageBox.Show("Değişiklikleri kaydetmek ister misiniz?", "Critical", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
                    btnSave.PerformClick();

            Rfrsh();
        }
    }
}
